1. Field of the Invention
One or more aspects of the invention generally relate to computer graphics and, more particularly, to remote graphical user interfaces (GUIs).
2. Description of the Related Art
Three-dimensional (3D) computer graphics conventionally involves generating 3D scenes on a two-dimensional (2D) computer screen. In a 3D animation, a sequence of images is displayed, giving the appearance of motion in three-dimensional space. Interactive 3D computer graphics allows a user to change viewpoint or geometry in real-time, thereby requiring the graphics system to create new images. Conventionally, the higher the number of images that are displayed per second, commonly referred to as the frame rate, the smoother the animation will appear but the more processing power and system bandwidth is required. For example, the human eye may detect new images coming onto the screen at frame rates less than 30 frames per second (fps). Several factors may affect the actual frame rate on a computer graphics system, such as the number of pixels on the screen. Generally, higher frame rates are possible with a fewer number of pixels, but visually perceptible image quality may suffer.
While the number of pixels and frame rate is important in determining graphics system performance, visual quality of the image generated may be equally important. As an example, an image on a 2D screen with high pixel density may appear unrealistic if resolution of the image is not high enough to represent a smooth curve, jagged lines may appear in the image. Processing techniques, such as smoothing and anti-aliasing techniques, can reduce the effect of jagged lines and aliasing. As another example, an image may appear unrealistic if all the objects appearing in the scene are in focus. The unrealistic appearance is due to an incorrect (or lack of) depth-of-field effect of the image. Depth of field generally refers to the distance range (i.e., an in-focus range) from a viewpoint within which objects in an image look sharp. In general, depth-of-field corrections attempt to blur objects or areas of an image that are either closer or farther away from a particular focal point.
The generation of 3D computer graphics, particularly if advanced 3D imaging techniques, such as anti-aliasing and depth-of-field corrections are involved, involves mathematically-intensive tasks which require a significant amount of computer processing power. To offload some of this burden from the central processing unit (CPU), some computer systems may include a graphics processing unit (GPU) dedicated to performing these tasks. On systems with GPUs, the generation of 3D graphics is typically accomplished in two major stages: geometry and rendering. The geometry stage, typically performed by the CPU, handles all polygon activity and converts 3D spatial data into pixels. The rendering stage, typically handled by the GPU, performs operations on the pixels, preparing them for display 3D image processing techniques, such as anti-aliasing and depth-of-field corrections.
For various applications, it may be desirable to display a high quality 3D image one on or more remote systems connected to a host system. For example, in a gaming environment, multiple users may interact via remotely located nodes (e.g., gaming consoles) connected via a common game server. As another example, multiple users at remote nodes (e.g, set-top box like devices) may wish to view content (e.g, a DVD movie) from a common media server.
One approach to display a high quality 3D image at such remote nodes is to render the 3D image on the host system and send the rendered image to remote node for display. In other words, remote nodes do not have to perform 3D processing and may, therefore, be configured with relatively limited resources required to receive and display the rendered image, which may be desirable to help control costs. However, network bandwidth required to transmit a high quality 3D image at an acceptable frame rate is not widely available, and any such network bandwidth is further consumed where multiple remote nodes are involved.
Another approach that may be used in an effort to reduce the required network bandwidth, is to transmit, from the host system to remote nodes, a limited amount of information necessary for remote node to render the 3D image, rather than the entire rendered 3D image. For example, the host system may send a remote node a data object describing the 3D image as a list of objects (e.g., stored on remote node) to be used in generating the 3D image. The remote node may then render the 3D image, using the stored objects, based on the information received. However, this approach significantly increases the resources required by remote node (e.g., sufficient storage for the image objects, sufficient processing power and memory to render the 3D image, etc.), which may significantly increase the cost of remote node.
Accordingly, a need exists for improved methods, apparatus, and systems for displaying high quality computer-generated 3D images on remote systems.